The present invention relates to the field of digital broadcasting, in particular, storage of multimedia content in digital video recorders (DVR) or Set-Top-Boxes (STB).
With the advent of Digital TV/DVR and media delivery systems like IPTV (Internet Protocol Television) and VOD (Video On Demand), consuming media (video/audio) content has become very flexible. Modern STBs provide the users with flexibility to record the video contents and watch it later at their own convenience. A DVR records the digital video content on a storage device, which can store several hours of video content. Some STBs come with multiple tuners, which provide the users flexibility to record or watch multiple programs on multiple windows. STBs or DVRs are examples of CPE (Customer Premises Equipment), and are used interchangeably in this application.
A conventional STB supports Live-Off-Disk (LOD) mode, which allows the users to perform trick plays (pause, rewind, fast forward) on the live television content. Conventional STBs make use of a circular buffer for temporary storage of such LOD content. This is explained further using a conventional STB with the help of FIG. 1.
FIG. 1 illustrates a conventional STB 100.
As illustrated in the figure, conventional STB 100 includes a tuner 102, a processor 104, a memory 106, a controller 108, a receiver 110, a circular buffer 112, an output portion 114 and a display device 116. In this example, tuner 102, processor 104, memory 106, controller 108, receiver 110, circular buffer 112, output portion 114 and display device 116 are distinct elements. However, in some embodiments, at least two of tuner 102, processor 104, memory 106, controller 108, receiver 110, circular buffer 112, output portion 114 and display device 116 may be combined as a unitary element.
Further, in some embodiments, at least one of processor 104, memory 106, controller 108, receiver 110, circular buffer 112 or output portion 114 may be implemented as a non-transient, tangible, computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transient, tangible, computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. Non-limiting examples of non-transient, tangible, computer-readable media include physical storage and/or memory media such as RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a non-transient, tangible, computer-readable medium. Thus, any such connection is properly termed a non-transient, tangible, computer-readable medium. Combinations of the above should also be included within the scope of non-transient, tangible, computer-readable media.
Tuner 102 is arranged to receive a data signal 118 and to output a signal 124 to receiver 110. Data signal 118 may be a MPEG1/2/4 Transport Stream (TS) carrying the stream of video content including audio, video and protocol data transmitted by a headend (not shown).
Processor 104 is arranged to bi-directionally communicate with tuner 102 via a signal 120; bi-directionally communicate with memory 106 via a signal 122; and bi-directionally communicate with controller 108 via a signal 126. Memory 106 may include program memory and/or data memory for storage. Memory 106 may also include a hard disk drive.
Controller 108 is arranged to communicate with receiver 110 via a signal 128; communicate with circular buffer 112 via a signal 130; and communicate with output portion 114 via a signal 132. Controller 108 is operable to receive instructions from processor 104 to provide controls to receiver 110, circular buffer 112 and output portion 114 to support trick plays as requested by the user.
Output portion 114 receives the live media content from receiver 110 via a signal 136 and the buffered media content from circular buffer 112 via a signal 138. Controller 108 provides a select signal 132 to output portion 114 for selecting the media data received from receiver 110 or circular buffer 112. Output portion 114 provides the selected media data to display device 116 via a signal 140.
Once tuner 102 is tuned to a channel, processor 104 instructs controller 108 to start receiving the media data in receiver 110. Receiver 110 communicates with circular buffer 112 via a signal 134 for temporary storage of data. Conventional STB 100 supports LOD mode, thus allowing users to pause live media content and be able to rewind the media content for an amount of time as limited by the capacity of circular buffer 112. As the media data is being received by receiver 110, it is also temporarily stored in circular buffer 112 in order to provide trick play features to the user. Circular buffer 112 is a finite length of memory; therefore when circular buffer 112 is full and a subsequent write is performed, the oldest data in circular buffer 112 is overwritten. The functionality of circular buffer 112 is explained in detail with the help of FIG. 2.
FIG. 2 illustrates an example embodiment of circular buffer 112.
As illustrated in FIG. 2, a length 200 of circular buffer 112 is divided in to different blocks of data ranging from 202-228. Block a starting at an address 202 is the oldest data written in circular buffer 112 with a length b and an end address indicated by block 212. Another block m starting at an address 214 with a length n and an end address indicated by block 222 wraps around the boundary of circular buffer 112. Blocks x, y and z are the recent blocks at addresses 224, 226 and 228 respectively, block z being the most recent. In one example, different blocks of data may correspond to different programs stored in LOD mode.
Once tuner 102 is tuned to a channel, media data is stored in circular buffer 112. When the user wishes to view the media data, it is read from circular buffer 112 and displayed on display device 116 via output portion 114. The use of circular buffer 112 allows the user to perform trick plays on the media content, for example, the user; can ‘pause’ the live media content, which is being displayed through circular buffer 112; can ‘rewind’ up to certain duration; or can replay the media content. Since circular buffer 112 is of finite length, it only stores a certain amount of data and as the new data comes in, old data keeps getting overwritten in circular manner.
In LOD mode, when the user wishes to ‘pause’ the viewing, circular buffer 112 continues storing the new data. If the user does not ‘resume’ soon enough, portions of user desired content, which might have happened during the pause period, can get lost because the data stored in circular buffer 112 gets overwritten by the new data. Referring back to FIG. 2, as an example, if the user was watching a program, which is part of blocks 214-222, the new data will start storing at address 202 and if the user did not ‘resume’ soon enough, the new data will overwrite the blocks 214-222, resulting in the loss of user desired content. Further, in the case of when the user does not ‘resume’ from a ‘pause’ position then after a certain time all the contents of circular buffer 112 are overwritten.
What is needed is a system and method for storing media content, in order to minimize loss of media content during DVR trick plays.